The present invention relates generally to methods and apparatus for displaying information on a terminal, and more particularly relates to methods and apparatus for formatting and displaying, on a terminal, graphical user interfaces such as the Microsoft Windows(copyright) operating environment and applications programs within such environments.
Graphical user interfaces such as the Microsoft Windows"" operating environment comprise the most popular operating environment for the world""s best selling applications software. Such environments are typically preferred because of ease of use, uniformity of user interface, high quality display, as well as other reasons. However, such user environments were designed for use with workstations and microcomputers such as personal computers. Such workstations and microcomputers, while flexible, present difficulties with security, reliability, ease of administration, and value. While data terminals are known to offer the advantages of improved security and ease of administration relative to microcomputers, usually at lower cost, terminals have generally been unable to provide compatibility with the most popular graphical user interfaces. Terminals operating in the X environment can provide some graphical interface capabilities operating under UNIX, but typically are expensive, require extensive memory, and offer little compatibility with the most popular Windows environments.
Another option known in the prior art is diskless PCs. However, diskless PCs offer several deficiencies. In most instances, diskless PCs operating in a client server environment display application program information by downloading the application from the server and executing the application locally. This requires the diskless PC to have whatever processing power is required for each application it attempts to execute. In today""s environment, this can require eight or more megabytes of memory, per application, a powerful processor, and so on making a diskless PC expensive. In addition, diskless PCs offer limited security and can require extensive administration.
The Windows NT operating system provides a robust network client/server environment, while at the same time offering compatibility at the applications program level with the popular Windows environment. However, the NT operating system was written for PC clients, and not terminals. As a result, NT clients are generally required to be robust and, as a result, expensive. In addition, Windows NT was written for the client/server environment, and not the multi-user environment. The Multi-User NT operating system offered by Citrix Systems, Inc., modifies the Windows NT operating system by extending it to operate in a multiuser environment, although the prior art application for Multi-User NT has been PCs clients as opposed to terminals.
There has therefore been a need for a terminal that is relatively inexpensive, reliable, easy to administer, secure and capable of displaying application program information within a multiuser Windows operating environment.
The present invention provides an elegant solution to the shortcomings of the prior art, in that it provides an inexpensive terminal capable of displaying applications software compatible with a windowing environment.
In particular, the present invention provides a display terminal capable of communicating with an applications server running a multiuser operating system. This provides secure access to Windows applications at the desktop. In an exemplary configuration, an application server is provided in the form of any suitable computer running the Multi-User NT operating system provided by Citrix Systems, Inc. The Multi-User NT operating system incorporates the Windows NT operating system plus extensions implementing a display protocol known as ICA3 as well as multi-user capabilities.
The terminal includes, in an exemplary embodiment, a hardware architecture based on the Intel X86 processor line. In addition, the terminal offers only limited main memory, and is generally incapable of local execution of modern application programs such as word processing, graphics, database, or other popular programs, or even the Windows or DOS operating system itself. In this way the terminal of the present invention is distinctly different from prior art X terminals or diskless PCs, or other PCs configured in a client/server environment.
Importantly, the hardware architecture does not implement the conventional IBM PC/AT bus, and the firmware within the terminal implements neither standard PC/AT BIOS nor a standard PC-compatible disk operating system. The terminal firmware implements network access extensions compatible with the application server, again, for example, the ICA-3 extensions available from Citrix Systems. A high-resolution graphical display is provided both for ease of use and may be monochrome (including grayscale) or color, as well as input/output devices typical of the Windows environment such as mouse, keyboard, touch screen and other I/O services.
In addition, the terminal includes a network interface capable of communicating with the application server across conventional RS232 lines, Ethernet connections, wireless, ISDN, fiber optic, AC power-line modems, cable or other connections. When connected to the application server, the terminal displays the Windows NT or Windows 95 operating environment, including any application programs executing on the server and accessed by the user of the terminal. In the exemplary arrangement, the terminal appears to the user essentially the same as a much more expensive, less secure, harder to manage personal computer. As a result, during operation the terminal of the present invention offers numerous features normally associated with a multiuser system, while at the same time offering many of the desirable features typical of a client/server environment.
The terminal includes transferring file information to and from the terminal and for automatically downloading images via file transferring protocol to the terminal over a network link from any network server between the processing means and the display means after the terminal has obtained information by the Dynamic Host Configuration Protocol. The terminal also includes using communications protocols for an interactive or automated download of a new image via a network. Enhancements to the Simple Network Management Protocol and user interface are provided along with means for downloading binaries to a terminal.
The present invention provides a terminal or a utility for executing on a terminal, server or both. The terminal displays application program information in a windowing environment including processing means, not fully compatible with personal computer BIOS or disk operating systems and incapable of executing windowing applications locally, adapted to receive windowing information supplied by programs executing on a remotely located application server and a display for the windowing information supplied by programs executing on the remotely located application server. File information is transferred to and from the terminal using a communications protocol. One or more image upgrades can be transferred to the terminal from the remotely located application server. Configuration data for the terminal can also be transferred to the terminal from the remotely located application server.
The terminal can further include automated downloading for one or more images to the terminal through a network link between the processor and the display after the terminal has been assigned an Internet Protocol address such as by a Dynamic Host Configuration Protocol. The terminal can include: providing configuration settings for the terminal using simple network management protocol; providing an interactive or automated downloading of an image through a network using simple network management protocol; creating or modifying binaries in the remotely located server with customized configurations from a tool kit; downloading the binaries to the display means via parallel, serial, flash card paths or an automated or interactive transfer using a communications protocol; merging automated configuration file and workspace images; administrating the configuration settings of the terminal from the remotely located server using a communications protocol; providing configuration settings for the terminal using a Management Information Base located on the remotely located server.
The present invention also provides a method for displaying application program information in a windowing environment. The steps of the method include: sending windowing information supplied by programs executing on a remotely located application server to a terminal not fully compatible with personal computer BIOS or disk operating systems and incapable of executing windowing applications locally; displaying the windowing information supplied by programs executing on the remotely located application server; and transferring file information to and from the terminal using a communications protocol.
The present invention further provides a terminal or a utility for executing on a terminal, server or both. The terminal displays application program information in a windowing environment including processing means, not fully compatible with personal computer BIOS or disk operating systems and incapable of executing windowing applications locally, adapted to receive windowing information supplied by programs executing on a remotely located application server, and display means for displaying the windowing information supplied by programs executing on the remotely located application server. More than one connection between the terminal and server is simultaneously maintained. The multiple connections include establishing more than one virtual machine on the terminal. Each virtual machine runs an open session. The writing of a screen stops and redisplays when a session is moved to the background without saving the screen in memory. Each virtual machine has a text buffer so when the virtual machine is in the background it has a virtual buffer that it can write to and it continue to run in the background. Each virtual machine sends a signal to a graphics application should a graphic need to be displayed. The application sends a signal out to the server to command it to stop sending display when the application is switched to the background so that traffic relating to the graphics application between the terminal and server is stopped. The server is commanded to redisplay the screen when the application is switched back to the foreground. Each virtual machine stops sending and receiving data to and from the server when an application resides in the background session. Each virtual machine commands the server to refresh the data for the application when the application is switched to the foreground.
The present invention provides a method for displaying application program information in a windowing environment that includes the steps of: sending windowing information supplied by programs executing on a remotely located application server to a terminal not fully compatible with personal computer BIOS or disk operating systems and incapable of executing windowing applications locally; displaying the windowing information supplied by programs executing on the remotely located application server; and simultaneously maintaining more than one connection between the terminal and server.